home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS in a Box 7
/
BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso
/
Files
/
Tele
/
C
/
Comet2.1.3.cpt
/
include
/
em.h
< prev
next >
Wrap
Text File
|
1991-10-22
|
28KB
|
812 lines
/*
Copyright Cornell University 1986. All rights are reserved.
*/
/* mode flags */
#ifndef _EMDEF
#define _EMDEF
#ifndef _TYPES /* don't include system stuff if already included */
#include <notice.h>
#include <types.h>
#include <stdio.h>
#include <osutil.h>
#include <quickdraw.h>
#include <toolutil.h>
#include <window.h>
#include <control.h>
#include <desk.h>
#include <segment.h>
#include <event.h>
#include <packages.h>
#include <resource.h>
#include <font.h>
#include <menu.h>
#include <textedit.h>
#include <dialog.h>
#include <memory.h>
#include <pb.h>
#include <print.h>
#include <scrap.h>
#endif
/* #ifdef MACTCP */
#include <MacTCPCommonTypes.h>
#include <TCPPB.h>
/*
#endif
*/
#include <key.h>
#include <q.h>
#include <timer.h>
#include <telnet.h>
#include <ft.h>
#include <emdefs.h>
extern unsigned long getmya5(); /* returns old a5, sets our a5 global data * */
extern short reopenconfig();
struct hostsock {
union {
char bytes[4];
unsigned long addr;
} u;
unsigned port; /* TCP port to connect to */
short hostconnact; /* ID of macro to execute after host connection complete */
};
/*
ibmcolormap array is organized as an array of RGB values:
[unprotected, protected]
X
[normal, sense, intense, invis]
X
[foreground, background]
*/
struct ibmcolormap {
RGBColor colors[MAXCOLORS];
} ; /* colormap */
extern struct ibmcolormap ibmcolormap;
extern struct ibmcolormap asccolormap;
struct windtext { /* structure with items required for useful TE */
TEHandle texthand; /* with a TextEdit box and a scrollbar */
short textscrapped; /* the TE scrap has been touched and must be coerced */
int FirstLine; /* the number of the line at the top */
short textlines; /* # of lines in page */
ControlHandle scrollhand; /* vertical scroll bar control */
};
/*
this is the enormous window structure comprising everything
the joint tradition of 3 separate programs, h19, tn, and tn3270,
knows about a window.
Major globals:
keydp -> the topmost winds structure, to which user key and mouse
routines refer;
keywindow -> its WindowRecord;
emdp -> the current output winds structure context to which emulator
I/O routines refer;
emwindow -> its WindowRecord;
*/
struct winds {
WindowPtr emwindow;
WindowPtr iconwindow;
WindowPtr textwindow;
short conntype; /* 0 TCP 1 Serial Driver 2 Comm Mgr */
short disposeonclose; /* close window/window document completely on close */
Handle connmacro; /* handle to macro to execute on connection */
Handle closemacro; /* handle to macro to execute before close */
Handle hlasthost; /* TCP/IP host address resource handle c string */
Handle hhostname; /* host name actually accessed pascal string */
Handle clickmacro; /* macro to execute on double-click */
short icon_up; /* icon window up */
/* from config.c */
AppFile appfile; /* SFGet/PutFile record */
short resfid; /* resource file descriptor */
short resvol; /* resource home volume */
long resdir; /* resource home directory */
short confchanged; /* the configuration has been modified */
short newconf; /* this is a new, unopened configuration */
/* .edit textedit window */
short logsession; /* log session screen clears/scrollups in .edit */
short hidetextwindow; /* textwindow: don't show the text window */
short edit; /* the text edit window is up */
short editload; /* load automatically on upload/download */
short editupwrap; /* wrap automatically on upload */
short editdownwrap; /* wrap automatically on download */
TEHandle texthand; /* TE text appearing in textwindow */
short textscrapped; /* the TE scrap has been touched and must be coerced */
int FirstLine; /* the number of the line at the top */
short textlines; /* # of lines in page */
ControlHandle vBarHand; /* scroll bar control */
/* save screen file output */
short savefid; /* id of file opened for saving screens */
SFReply reply; /* file open record */
/* items for file logging */
short filesession; /* log session in a file */
SFReply logreply; /* log file open record */
short logfid; /* id of file opened for logging session */
short logerase; /* log/file text erased by ASCII emulator */
/* per window variables telnet.c */
struct hostsock fhost; /* host address */
short connopen; /* is connection open */
short telmode; /* telnet interpretation mode */
short termtype; /* index for trying different types */
struct ucb ucb; /* user preferences from config file */
short subnegofail;
short userquit; /* user quitting */
char tnbinary; /* BINARY negotiated? (for 3270) */
char tneor; /* EOR negotiated? (for 3270) */
char tndata; /* flag that data has arrived on connection */
char disableterm[12]; /* table for getting disabled termtypes */
short termset; /* term type selected, OK to output... */
short termrepeat; /* repeating last terminal type in list */
/* TNdrvr interface vars */
Boolean hycnewdata; /* new data has arrived since last driver call */
Boolean hycactive; /* driver interface active */
short hycconnwait; /* connection requested but not complete */
/* per window vars from event.c */
short backonly; /* run only in background */
short autoshrink; /* shrink automatically on suspend/resume */
char delayactions; /* hold macros until timer pops */
unsigned long event_reg; /* flags for events that need servicing (mostly 3270) */
short mfwait; /* wait for MF updates before drawing */
/* mode flags */
/* input control */
short ibm_mode; /* use IBM 3270 rather than ASCII em I/O */
short userxoff; /* user has done ^S */
char delaytokens; /* hold macro tokens until timer pops */
timer *token_tm; /* timer for resuming token interpretation */
/* key.c */
short ibm_keymode; /* differentiate for 7171 serial access */
short keypadswitch; /* switch +/- on standard keyboard keypad */
/* ASCII */
short ba_bs; /* if FALSE, map BS to DELETE */
short escmap;
short crtonl; /* map carriage return to newline */
/* IBM */
short keypad; /* keypad mode */
short typeahead; /* do typeahead */
short pfshift; /* shift next PF key up by 12 */
short pfdubshift; /* shift next PF key up by 24 */
/* macro.c */
short dokeymacros; /* like it says */
short macroexecuting; /* prettywind tokens remain on q, the macro flag is highlighted */
short keyaltset; /* match alt (mouse down) state when matching macro */
struct keyxlist * keyxhead;
struct token actqueue[MAX_Q]; /* TODO dynamic? the token buffer */
short q_head;
short q_tail;
short q_cnt;
char tokenhold; /* save tokens we've handed up so we can loop */
char matchinput; /* match input loop mode */
short loopcount; /* # of times to loop, -1 = forever */
unsigned short tokencount; /* count of tokens in loop */
/* state for token interpreter */
int gotoy;
int nselystart; /* selection rectangle */
int nselxstart;
int nselyend;
int nselxend;
/* drawing vars for all emulators screen.c vt100.c h19.c asciidraw.c */
char emdisable; /* don't update screen */
char dsdraw; /* use direct to screen drawing */
short color; /* use color on the screen */
short inselection; /* ascii flag for ds draw */
Rect gdRect; /* dsdraw display global coordinates */
short lastrow; /* ASCIIlast row of emulator, counting from 0 */
short screensize; /* ASCII emulator screen size */
short emliteral; /* ASCII literal output */
/* the following are function pointers for directscreen v. quickdraw functions */
/* font IDs */
short normfont; /* normal font ID */
short highfont; /* bold font ID */
short vtfont; /* vt100 graphics font ID */
int (*screen_upd)(); /* update the emulator screen */
int (*updatewind)(); /* update the whole window */
int (*clear_scr)(); /* clear the screen */
/* IBM 3270 */
int (*ch_draw)(); /* draw a single character */
int (*str_draw)(); /* draw a string */
int (*prepibmdraw)(); /* set up screen for drawing */
/* ASCII routines */
int (*scrollup)(); /* -> routine which does bit scrolling */
int (*emstr)(); /* -> emstr(ptr, count) routine */
int (*em)(); /* -> em(char) routine */
/* BIGG variables following are copied to/from globals */
/* shared by all emulators */
/* direct to screen stuff */
unsigned long modflg; /* BIGG line modified bit array */
unsigned long clrflg; /* BIGG line cleared bit array */
FONTS * thefont; /* BIGG default font */
short ** startarr; /* BIGG dsdraw -> array of ptrs to scanline starts */
short screenbytes; /* BIGG width of screen in bytes */
short screenrem; /* BIGG screenbytes - std screen */
short * screenbase; /* -> the screen PixMap */
short xpos;
short ypos; /* BIGG current x, y position */
Rect zaprect; /* for ShieldCursor */
/* h19 */
short mode; /* BIGG interpretation mode of emulator */
short inserton; /* BIGG insert mode */
unsigned char attrib; /* BIGG normal/reverse mode for copy drawing */
short wrap_around; /* BIGG wrap at end of line if true */
unsigned char * charp; /* BIGG ASCII -> cursor location in charr */
#ifdef VARVTSIZE
unsigned char * charr; /* * character/attribute array for screen */
char * tabset; /* * tab settings array */
#else
unsigned char charr[2 * SCREENSIZE];
char tabset[MAXLINELENGTH];
#endif
unsigned char * charrend;
unsigned char * atarr; /* attributes on screen SAME AS CHARREND! */
unsigned char * secondline;
unsigned char * lastline;
long size23;
short linecount; /* # of rows */
short linelength; /* BIGG width of row */
short lastcol; /* BIGG linelength - 1 */
Rect bigrect; /* for line insert, delete -- surrounds em area at margin */
Rect scrollrect; /* current scrolling rect */
/* vt100; uses most h19 vars also */
short vtmode; /* BIGG new mode holder for vt100 */
unsigned short * argp; /* BIGG -> current argument */
unsigned char charset; /* BIGG character set in use (normal, vtgraphics) */
/* 3270 */
/* variables important to the 3270 interpreter */
unsigned char *scr_map; /* BIGG screen map */
unsigned char *smap_end; /* BIGG end of map */
unsigned char *scr_org; /* BIGG temporary base of map due to write+SBA only */
unsigned char *current_attr; /* BIGG pointer to most recent attribute */
unsigned char *cursor_ptr; /* BIGG current cursor position in screen map */
unsigned char * firstp; /* BIGG ptr to first data byte processed for set_map */
unsigned char realattr; /* BIGG mask for relevant attributes */
short cmdstate; /* BIGG state of the emulator */
unsigned char * savcurptr; /* BIGG saves curptr */
unsigned short savcount; /* BIGG various counters which need to be saved between calls */
short savdata; /* BIGG saves haddata */
short scr_flag; /* BIGG */
/* BIGG end of copy range */
/* shared variables */
/* cursor modes */
short curson; /* cursor state, on or off */
short blockcurs; /* block vs. underline cursor */
short changecurs; /* make cursor blink */
Rect cursrect; /* inviolable cursor Rect */
/* set globals to certain screen constants to eliminate calculations */
short voffset; /* offsets of em display from origin */
short hoffset;
short ctloffset;
short fontsize; /* the usual wrong size spec, # bits above base */
short lineheight; /* line height including leading */
short fontheight; /* the actual height of font */
short fontdescent; /* # of descending bits in font */
short fontwidth; /* BIGG width of font */
short bottommarg; /* bottom margin of emulator area */
short rightmarg; /* right margin of emulator area */
short mrecttop; /* offset to top of mouse tracking rectangle */
short mrectbot; /* offset to bottom of mouse tracking */
short curstop; /* top of the cursor */
char cursorwait; /* cursor needs to be moved after mfwait */
timer *sel_tm; /* timer for redrawing selection on screen */
short selrectset; /* selection has been made */
short selrectvis; /* selection is visible */
short copytable; /* use table mode when copying selection? */
Rect seltoprect; /* rectangle for top portion of selection range */
Rect selmidrect; /* rectangle for middle portion of selection range */
Rect selbotrect; /* rectangle for bottom portion of selection range */
short seltopset;
short selmidset;
short selbotset;
short selystart; /* x & y coordinates where the selection starts & ends */
short selxstart;
short selyend;
short selxend;
short starty; /* coordinates we do sel extends around */
short startx;
short selfirsttime;
/* 3270 */
short ayt_sent; /* if 1, Are You There has just been sent */
unsigned char aid_key; /* most recent AID */
short nullsareblanks; /* causes imbedded nulls to be sent as blanks */
short squeezeblanks; /* squeeze blanks and not just nulls on insert */
short shiftfield; /* shift all chars in field, not just row */
struct ibmcolormap ibmcolormap; /* colormap, used for ascii too! */
/* h19.c */
short scrollcount; /* counts scrolled lines */
short curseekmode; /* VI mode moves cursor w/ vi commands */
/* vt100.c */
short vtkeypad; /* user vt100 keypad mode */
unsigned short argarr[MAXARGS]; /* arguments for ANSI mode */
short argcount; /* # of arguments rec'd */
short scrolltop; /* scrolling region top */
short scrollbottom; /* scrolling region bottom */
char vtaltkeypad; /* vt100 alternate keypad in effect */
char vt52altkeypad; /* vt100 alternate keypad in effect */
char vtaltcursor; /* vt alternate cursor mode */
char vtnewline; /* LF == NEWLINE ANSI mode */
char vtjumpscroll; /* jump/smooth scroll mode */
char decom; /* DEC origin mode in effect */
char wrapped; /* indicate wraparound was performed */
short owrapped; /* following vars for save/restore cursor */
short odecom;
short ocharsetSO;
short oxpos; /* saved cursor position */
short oypos;
unsigned char ocharset; /* saved charset */
unsigned char oattrib; /* saved attrib */
/* character set state */
unsigned char charsetSO; /* G0 set shifted out? */
unsigned char charsetG0; /* G0 character set */
unsigned char charsetG1; /* G1 character set */
/* h19key.c */
timer * timer25; /* timer to reset the prompt line */
Point penloc25;
char line25[LINE25LEN];
/* per window prettywind.c */
BitMap toprectbm; /* bitmap copy of the top controls */
Rect bmdestrect; /* the destrect */
short h19right; /* right edge of emulator area */
short h19flagcenter; /* point to place chars in labels */
Rect qmarkrect; /* TODO delete ? question mark box filling q2; if cursor hits,
q3 labels get drawn */
Rect toprect; /* rectangle containing top controls */
Rect countrect; /* frames the counters */
Rect incountrect; /* blanks input count */
Rect outcountrect; /* blanks output count */
Rect shiftrect; /* PF shift label */
Rect dubshiftrect; /* PF double shift label */
Rect macrorect; /* macro key interpretation label */
Rect syslockrect; /* IBM system lock label */
Rect kbdlockrect; /* IBM keyboard lock label */
/* controls on the window; emcursor.c prettywind.c */
short iconhigh; /* is iconwindow highlighted? */
ControlHandle q1controls[Q1BUTMAX]; /* buttons at top */
short controlschanged; /* controls in toprect need to be redrawn */
Rect shrinkrect; /* button at right which shrinks screen */
/* menu */
char * seltype; /* -> "Screen" or "Selection" */
/* communication methods */
/* pointers to i/o functions */
int (*dotoken)(); /* -> current user input macro command handler */
int (*sendchar)(); /* -> routine to send a character to the host */
int (*sendstr)(); /* -> routine to send a string */
int (*putflush)(); /* -> routine to flush pending sends */
int (*putchar)(); /* -> routine to output a character */
unsigned long in_cnt;
unsigned long out_cnt; /* packet counts in and out */
/* per window control structures for MacTCP in mactcp.c */
long tcp_stream;
short mtcpconnopen; /* mactcp: a connection has been made */
short data_rcvd; /* data has been received on the stream */
short closeflag; /* connection has been closed */
short resending; /* TCP is resending... highlight counter */
TCPiopb * tcp_conn;
TCPiopb * mtstream; /* stream block for mactcp */
short send_wait; /* # tcp sends to wait for PB */
short resends; /* TCP # of resent packets */
unsigned char * sendbuf; /* circular buffer for sending */
unsigned char * fillp; /* -> next empty char pos in buffer */
unsigned char * fillendp; /* -> end of buffer */
unsigned char * sendp; /* -> first char waiting to be sent */
unsigned short fillcount; /* # of chars in buffer */
unsigned short waitcount; /* # of chars waiting to be sent */
unsigned char * rcvbuf; /* buffer handed to TCP for rcvs */
/* serial port variables */
short usebport; /* TRUE use Printer Port, FALSE Modem Port */
short autohangup; /* hangup serial line automatically on close */
unsigned long kin_cnt;
int xon; /* transmission on or off? */
short refin; /* driver ref # */
short refout;
short baud; /* Apple Serial Driver arg masks */
short parity;
short stop;
short data;
/* per window vars from ft.c for file transfer */
short downvol; /* download home volume for SFGET */
long downdir; /* download home directory for SFGET */
short downvref; /* volume ref num */
short resvref; /* document volume ref num */
Rect textrect;
FILE *ft1;
unsigned char ft_flag; /* ft3270 flag bits */
unsigned char ack_buff[10];
unsigned char *xfer1_buff; /* large transfer buffer [MAXLEN] */
unsigned char *xfer2_buff; /* small transfer buffer [20]; */
unsigned char *tbuff; /* [TBUFLEN]; */
unsigned char *ft3270_buff; /* [TNFTLEN+10];*/
unsigned char *ftbuff; /* disk buffer [DOSLEN]; */
unsigned char ftsavebuf[MAXLEN]; /* TODO dynamic? saves tcp stream until EOR [TNFTLEN+10];*/
unsigned char *ftsaveptr; /* TODO dynamic? ptr into buffer */
short ftlen;
short ftcnt;
short fnamelen;
short upload_cnt;
short input_cnt;
short input_state;
unsigned char extra;
unsigned char *ftptr;
unsigned char *ftname;
long fttotal;
long ftxfered;
long re_xmit;
short cft_count; /* a counter for ft3270 */
/* ftc19 packet structure used for upload & download */
struct ftc19_pkt rcv_pkt;
struct ftc19_pkt send_pkt;
Rect arcrect; /* macintosh transfer status pie */
short arcdeg;
short ibm_type; /* kind of 3270 user has selected */
struct ibmcolormap colormap; /* colormap of best matches */
/* newly added vars */
short notrackcurs; /* don't do cursor positioning with mouse */
};
/* end of winds struct */
extern struct winds * conns[MAXWIND];
extern short conncount;
extern struct winds * emdp; /* pointer to emulator connection block we're using */
extern struct winds * keydp; /* pointer to top window connection block we're using */
extern WindowPtr keywindow; /* the top emulator window */
extern WindowPtr iconwindow; /* top go-away window, shows tn3270 icon */
extern WindowPtr emwindow; /* the output emulator window */
extern EventRecord myEvent;
/* various macintosh emulator vars and flags */
extern short doubleclick; /* a double click has occurred */
extern short mousecurson; /* is the mouse cursor hidden? */
extern short inemulator; /* an emulator is in use */
extern short clickdelay; /* # of ticks to wait before setting a selection */
extern short modaldialog; /* is a modaldialog active outside the Mac task? skip event loop! */
extern long creator; /* creator for file info */
extern short autokey; /* indicates autokey is on */
extern short autokeycommand; /* indicates autokey-command was done */
extern short autokeypersist; /* indicates autokey has been on */
extern timer *autokeywait;
extern int clrautokeywait();
extern short iplog; /* enable logging of IP packets UNUSED */
extern unsigned long cticks; /* current # of ticks elapsed */
extern unsigned long tickcursor; /* next tick count to service cursor */
extern unsigned long tickstats; /* next tick count to display packet counters */
extern unsigned long tickserial; /* next tick count to check serial port */
extern short serialwait; /* how long the serial mgr thinks we should wait */
extern short connavailable; /* an empty connection struct is lying about */
extern short cutcpopen; /* Cornell TCP has been opened */
extern short mactcpopen; /* macTCP TCP has been initialized */
extern short macipopen; /* macTCP IP driver has been opened */
extern short mtevent; /* Mactcp-- new data has arrived */
extern short mtcpsendasync; /* use async send w/ MacTCP */
extern char copyerr[];
extern short mfpresent; /* we're under MultiFinder */
extern long gettextscrap();
extern long memtest(); /* forward declaration */
extern short mfbackground; /* doesn't really belong here */
extern short keyboard; /* keyboard type */
extern short keypadswitch; /* switch "Standard" keyboard keypad -,+ */
/* Cursors -- cross */
extern Cursor target;
extern Cursor blank;
extern Cursor * thecursor;
/* prettywind globals */
extern short q3conth; /* height of quadrant 3 control button */
extern short q3contskip; /* size of skip every 3 buttons */
extern RgnHandle emclip; /* holds previous em clip rect */
extern RgnHandle q3clip; /* for calculating new clip w/o q3 box */
extern PicHandle shrinkpict; /* picture for shrink control */
extern PicHandle tapepict; /* picture of cassette tape */
extern char * nosessionstr; /* "No Active Session" */
extern char * badaddress; /* "Invalid host address" */
/* some important globals for scrinit.c follow */
extern SysPtr paramptr; /* pointer to parameters for cursor blink time */
/* stuff for character image drawing */
extern FONTS font;
extern FONTS invfont;
extern FONTS boldfont;
extern FONTS invboldfont;
extern FONTS bvtfont;
extern FONTS invbvtfont;
extern RgnHandle updateRgn;
extern short bkrd_act; /* is tcp running in background mode? */
/* mouserect sizing and tracking of cursor */
extern short trackon; /* cursor tracking flag */
extern Rect mouserect; /* also used by h19curset to find the targeted x,y */
extern Rect dragrect; /* the drag restriction rect */
extern char inselection; /* flag that we are in selection range */
extern int selrestore();
extern long size23; /* size of char array less one line */
extern short linecount; /* length of line in char array */
extern short scrollcount; /* counts scrolled lines */
extern unsigned long modmask[]; /* masks for modflg */
/* emulator routine vectors */
extern int vt100();
extern int vt100str();
extern int h19();
extern int h19str();
extern short trydsdraw; /* *try* to use direct to screen drawing */
extern short riskydsdraw; /* only use dsdraw in FrontWindow() */
extern char zapuline; /* dsdraw underline flag */
extern char zapinvert; /* dsdraw underline flag--font is inverted */
extern char skiparr[]; /* TRUE if character is a space */
extern char allskiparr[]; /* alternate all-TRUE skiparr */
extern char isdiacritic[]; /* array of 0-width chars for QD drawing */
/* emcursor stuff */
/* q3 vars */
extern char * q3strings[]; /* strings for labels */
extern char q3controls[]; /* ASCII send strings */
extern char q3vtcontrols[]; /* ASCII VT100 send strings */
extern short topcontexist; /* true if top controls exist */
/* token related stuff from key.c */
#define MAX_Q 1000 /* large, mouse tracking adds a lot of actions */
extern short courierprint; /* print using Courier on LaserWriters? */
/* from config.c */
extern short appresfid; /* application resource file descriptor */
extern short appvol; /* application home volume */
extern long appdir; /* application home directory */
extern short appvref; /* application volume ref num */
extern char * setfile; /* settings default filename */
extern char * untfile; /* settings default filename */
extern short mfbackonly; /* run only in background */
/* from scrinit.c */
extern char * skiptest; /* current skip array to use in zap */
/* BIGG per window variables copied into globals for better speed
and to avoid modifying zap.asm */
/* shared BIGG */
extern FONTS *thefont; /* BIGG */
extern short xpos, ypos; /* BIGG current x, y position */
extern unsigned long modflg; /* BIGG line modified bit array */
extern unsigned long clrflg; /* BIGG line cleared bit array */
extern short fontwidth; /* BIGG width of font */
extern short ** startarr; /* BIGG dsdraw -> array of ptrs to scanline starts */
extern short screenbytes; /* BIGG width of screen in bytes */
extern short screenrem; /* BIGG screenbytes - std screen */
/* h19 BIGG */
extern unsigned char * charp; /* BIGG cursor loc for these arrays */
extern short mode; /* BIGG interpretation mode of emulator */
extern short inserton; /* BIGG insert mode */
extern short linelength; /* BIGG width of row */
extern short lastcol; /* BIGG linelength - 1 */
extern unsigned char attrib; /* BIGG normal/reverse mode for copy drawing */
extern short wrap_around; /* BIGG wrap at end of line if true */
/* 3270 BIGG */
extern short cmdstate; /* BIGG state of the emulator */
extern unsigned char *scr_map; /* BIGG screen map */
extern unsigned char *smap_end; /* BIGG end of map */
extern unsigned char *current_attr; /* BIGG pointer to most recent attribute */
extern unsigned char *cursor_ptr; /* BIGG current cursor position in screen map */
extern unsigned char * firstp; /* BIGG ptr to first data byte processed for set_map */
extern short scr_flag; /* BIGG */
/* vt100 BIGG */
extern short vtmode; /* BIGG new mode holder for vt100 */
extern unsigned short * argp; /* BIGG -> current argument */
/* end BIGG vars */
extern short * chofftab9; /* array of character offsets to avoid multiplies */
extern short * chofftab12; /* array of character offsets to avoid multiplies */
/* assembly utility vars */
extern long long1;
extern long long2;
extern long long3;
extern long long4;
extern TEHandle helptehand;
extern WindowPtr helpwind;
extern long filltimeout;
extern short edresetselect; /* reset selection after emulator edit action */
extern char * malloc();
extern short quitonclose; /* quit when no windows open */
extern short tftpopen; /* has tftp been initialized? */
extern short tftpserve; /* act as a tftp server */
extern short tftpask; /* query user about transfers */
extern unsigned long cursalarm; /* tick count at which to change cursor */
extern Rect boxrect; /* box in which the q3 button labels are drawn */
/* 3270 */
extern unsigned char ebctoasc[]; /* pointer to array containing EBCDIC chars */
extern unsigned char asctoebc[]; /* pointer to array containing ASCII chars */
/* a structure to save font information for restoration */
struct fontsave {
short fontsize;
short fontid;
};
#endif
Handle setmacro();